////`default_nettype none   
//synthesis translate_off 
`include "../../timescale.v"  
//synthesis translate_on
`include "../../DSP_define.v"
`timescale 1ns/1ns
module Fet_Pkt_buffer_tb();
reg                         sys_clk;
reg                         rst_n;
reg                  [255:0]Fet_Pkt_i;
reg                         Fet_Pkt_rdy;
reg                         stall;
wire                 [255:0]Fet_Pkt_o;


//generate clock signal
initial 
  begin
    //$timeformat(-9, 1, " ns", 5);
    sys_clk=1;
  end 
always #10 sys_clk = ~sys_clk; 

//assignment
initial 
begin
//*********************--------assignment 1---------*********************//      
    //assignment 1:rst_n=1;   
      $display("*************simulate 1:rst_n=1******************");
      #1                rst_n=1'b0;
                      Fet_Pkt_i=32'b1;
                      Fet_Pkt_rdy=1'b0;
                      stall=1'b0;
    //assignment 2:Fet_Pkt_rdy=0;   
      #20 $display("*************simulate 2:Fet_Pkt_rdy=0******************");
                      rst_n=1'b1;
                      Fet_Pkt_i=32'b10;
                      Fet_Pkt_rdy=1'b0;
                      stall=1'b0;                   
    //assignment 3:Fet_Pkt_rdy=1;   
      #20 $display("*************simulate 3:Fet_Pkt_rdy=1******************");
                      rst_n=1'b1;
                      Fet_Pkt_i=32'b11;
                      Fet_Pkt_rdy=1'b1;
                      stall=1'b0;           
    //assignment 4:stall=1;   
      #20 $display("*************simulate 4:Fet_Pkt_rdy=1******************");
                      rst_n=1'b1;
                      Fet_Pkt_i=32'b100;
                      Fet_Pkt_rdy=1'b0;
                      stall=1'b1;
    //assignment 5:Fet_Pkt_rdy=1;   
      #20 $display("*************simulate 5:Fet_Pkt_rdy=1******************");
                      rst_n=1'b1;
                      Fet_Pkt_i=32'b101;
                      Fet_Pkt_rdy=1'b1;
                      stall=1'b0;           
    //assignment 6:stall=1;   
      #20 $display("*************simulate 6:Fet_Pkt_rdy=1******************");
                      rst_n=1'b1;
                      Fet_Pkt_i=32'b110;
                      Fet_Pkt_rdy=1'b1;
                      stall=1'b1;  
    //assignment 7:rst_n=1;   
      $display("*************simulate 7:rst_n=1******************");
                      rst_n=1'b1;
                      Fet_Pkt_i=32'b111;
                      Fet_Pkt_rdy=1'b1;
                      stall=1'b0;
    //assignment 8:Fet_Pkt_rdy=0;   
      #20 $display("*************simulate 8:Fet_Pkt_rdy=0******************");
                      rst_n=1'b1;
                      Fet_Pkt_i=32'b1000;
                      Fet_Pkt_rdy=1'b1;
                      stall=1'b0;                   
    //assignment 9:Fet_Pkt_rdy=1;   
      #20 $display("*************simulate 9:Fet_Pkt_rdy=1******************");
                      rst_n=1'b1;
                      Fet_Pkt_i=32'b1001;
                      Fet_Pkt_rdy=1'b1;
                      stall=1'b0;           
    //assignment 4:stall=1;   
      #20 $display("*************simulate 10:Fet_Pkt_rdy=1******************");
                      rst_n=1'b1;
                      Fet_Pkt_i=32'b1010;
                      Fet_Pkt_rdy=1'b1;
                      stall=1'b1;
       //assignment 4:stall=1;   
      #20 $display("*************simulate 11:Fet_Pkt_rdy=1******************");
                      rst_n=1'b1;
                      Fet_Pkt_i=32'b1011;
                      Fet_Pkt_rdy=1'b1;
                      stall=1'b1;  
         //assignment 4:stall=1;   
      #20 $display("*************simulate 12:Fet_Pkt_rdy=1******************");
                      rst_n=1'b1;
                      Fet_Pkt_i=32'b1100;
                      Fet_Pkt_rdy=1'b0;
                      stall=1'b0;   
              //assignment 4:stall=1;   
      #20 $display("*************simulate 13:Fet_Pkt_rdy=1******************");
                      rst_n=1'b1;
                      Fet_Pkt_i=32'b1101;
                      Fet_Pkt_rdy=1'b0;
                      stall=1'b0;  
         //assignment 4:stall=1;   
      #20 $display("*************simulate 14:Fet_Pkt_rdy=1******************");
                      rst_n=1'b1;
                      Fet_Pkt_i=32'b1110;
                      Fet_Pkt_rdy=1'b1;
                      stall=1'b1;                                                                                  
      #20 $finish; 
  end                                    
                             
//instance
Fet_Pkt_buffer     U1(  
                      .sys_clk(sys_clk),
                      .rst_n(rst_n),
                      .Fet_Pkt_i(Fet_Pkt_i),
                      .Fet_Pkt_rdy(Fet_Pkt_rdy),
                      .stall(stall),
                      .Fet_Pkt_o(Fet_Pkt_o)
                      );
endmodule